With the advent of the Internet and rapid advances in network technologies, distributed computing has become an increasingly popular computing approach as it allows sharing of computational resources (such as, for example, memory, processing time, input/output, etc.) among many different users or systems or any combination thereof. One such example is “cloud computing”, which involves applying the resources of several computers in a network to a single problem at the same time. Cloud computing is Internet (“cloud”) based development and use of computer technology (“computing”). Conceptually, infrastructure details are abstracted from the users and/or systems that no longer need knowledge of, expertise in, or control over the technology infrastructure “in the cloud” that support them. It typically involves the provision of dynamically scalable and often virtualized resources as a service over the Internet.
Recently technologies such as, “grid computing”, “utility computing” and “autonomic computing” have been used for sharing resources in a distributed computing environment. Grid computing is a form of distributed computing, whereby a ‘super and virtual computer’ is composed of a cluster of networked, loosely coupled computers acting in concert to perform large tasks. Utility computing is a packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility, such as electricity. Autonomic computing is a computer system capable of self-management.